import Vue from 'vue'
//导入路由
import VueRouter from 'vue-router'
//安装路由
Vue.use(VueRouter)
//导入自己的router.js模块,到VM实例上去挂载router
import router from './router.js'

import Vuex from 'vuex'   //导入vuex
Vue.use(Vuex)    //注册vuex

var car =JSON.parse(localStorage.getItem('car')||'[]')

var store = new Vuex.Store({   //创建vuex的仓
state:{
        car:car   //this.$store.state.***
},  
mutations:{
        //把goodsinfo里面的goodsinfo的商品信息，保存到VUEX中store的state的car中
        addTocar(state,goodsinfo){
                var flag = false   //假设  没有在购物车里找到对应的商品
                state.car.some(item=>{
                        if(item.id === goodsinfo.id){
                                item.count += parseInt(goodsinfo.count)
                                flag = true
                                return true
                        }
                })
                //如果循环玩，发现
                if(!flag){
                        state.car.push(goodsinfo)
                }
                        //当更新car之后，把数据保存到localstorage中
                localStorage.setItem('car',JSON.stringify(state.car))
        },
        updateGoodsinfo(state,goodsinfo){
                //修改购物车商品的数量
                state.car.some(item=>{
                if(item.id == goodsinfo.id){
                        item.count = parseInt(goodsinfo.count)
                        return true
                }
                })
                //当修改完数量，把最新的购物车数据保存到本地存储中
                localStorage.setItem('car',JSON.stringify(state.car))
        }, 
        removeFromcar(state,id){
        //根据id从store中删除对应的那条数据
        state.car.some((item,i)=>{
                if(item.id=id){
                state.car.splice(i,1)
                return true
                }
        })
          localStorage.setItem('car',JSON.stringify(state.car))
        },
        updateGoodsSelected(state,info){
                state.car.some(item=>{
                if(item.id == info.id){
                item.selected=info.selected
         }
                })
                localStorage.setItem('car',JSON.stringify(state.car))
        }
},  //this.$store.commit('方法名称','按需传递唯一参数')
getters:{
        getAllcount(state){ //this.$store.getters.***
                var c = 0;
               state.car.forEach(item=>{
                c += item.count

               }) 
               return c;
        },
        getGoodscount(state){
                var o =[];
                state.car.forEach(item=>{
                o[item.id]=item.count

                })
                return o
        },
        getGoodsselected(state){
                var o ={}
        state.car.forEach(item=>{
        o[item.id]= item.selected
        })
        return o
        
        },
        getcountandamount(state){
        var o ={
        count :0,
        amount : 0
        }
        state.car.forEach(item=>{
          if(item.selected){
                o.count +=item.count
                o.amount += item.price*item.count
          }
       
        })
        return o
        }
},    

})



//导入格式时间
import moment from 'moment'


//定义时间的过滤器
Vue.filter('dataFormat',function(dataStr,pattern="YYYY-MM-DD HH:mm:ss"){
     return moment(dataStr).format(pattern)
       
})

import VuePreview from 'vue-preview'
// defalut install
Vue.use(VuePreview)
// with parameters install


// 导入vue.resource 
import VueResource from 'vue-resource'
// 安装vue.resource
Vue.use(VueResource)

//全局设置 post 时候表单数据格式的组织形式
Vue.http.options.emulateJSON=true;

//导入mint-ui组件
 import mintui from 'mint-ui'
 Vue.use(mintui)
 import 'mint-ui/lib/style.css'

 //导入Mui的样式
 import './lib/mui/css/mui.min.css'
 //导入Mui中的css
 import './lib/mui/css/icons-extra.css'


 //把app.vue拿过来        
import app from '../app.vue'




var vm = new Vue({
        el:'#app',
        render:c=>c(app),
        router,//挂载路由对象到vm实例中
        store
})

